package com.edu.exam.enums.monitoring;

import com.edu.exam.enums.core.StatusEnum;

/**
 * 通知状态枚举
 * 管理系统通知的状态
 *
 * @author System
 * @version 1.0.0
 */
public enum NotificationStatus implements StatusEnum {

    DRAFT("DRAFT", "草稿", 1),
    SCHEDULED("SCHEDULED", "已调度", 2),
    SENDING("SENDING", "发送中", 3),
    SENT("SENT", "已发送", 4),
    DELIVERED("DELIVERED", "已送达", 5),
    READ("READ", "已读", 6),
    FAILED("FAILED", "发送失败", 7),
    CANCELLED("CANCELLED", "已取消", 8),
    EXPIRED("EXPIRED", "已过期", 9);

    private final String code;
    private final String description;
    private final int order;

    NotificationStatus(String code, String description, int order) {
        this.code = code;
        this.description = description;
        this.order = order;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getDescription() {
        return description;
    }

    public int getOrder() {
        return order;
    }


    @Override
    public String toString() {
        return this.code + "(" + this.description + ")";
    }
}